/**
 * 可以在打包的时候产生一个新的文件
 * webpack包/lib/compiler.js
 */
class Myplugin {
  constructor(options) {
    this.options = options;
  }

  fn (complication, callback) {
    var str = '文件列表是：\n';
    for (let k in complication.assets) {
      str += `文件名：${k}，大小是${complication.assets[k].size()} \n`
    }
    complication.assets['myfile.md'] = {
      source() {
        return str
      },
      size() {
        return str.length
      }
    }
    callback && callback()
  }

  apply(compiler) {
    // 生命周期钩子函数
    const hooks = compiler.hooks;
    if (hooks) {
      hooks.emit.tap('myplugin', this.fn)
    } else {
      compiler.plugin('emit', this.fn)
    }
  }
}

module.exports = Myplugin